package com.util;


import org.json.JSONException;
import org.json.JSONObject;

import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.dysmsapi.model.v20170525.SendSmsRequest;
import com.aliyuncs.dysmsapi.model.v20170525.SendSmsResponse;
import com.aliyuncs.profile.DefaultProfile;
import com.aliyuncs.profile.IClientProfile;
import com.config.ConstDefine;

public class MSGUtil {
	/**
	 * 掉ALI接口发短信
	 * @param contend
	 * @param phone
	 * @param templateCode
	 * @return
	 */
	public static JSONObject sendMSG_ali(String contend,String phone,String templateCode)
	{
		JSONObject json=new JSONObject();
//		return "1";
		String res="03";
		try {
			//设置超时时间-可自行调整
//			System.setProperty("sun.net.client.defaultConnectTimeout", "10000");
//			System.setProperty("sun.net.client.defaultReadTimeout", "10000");
			//初始化ascClient需要的几个参数
			final String product = "Dysmsapi";//短信API产品名称（短信产品名固定，无需修改）
			final String domain = "dysmsapi.aliyuncs.com";//短信API产品域名（接口地址固定，无需修改）
			//替换成你的AK
//			final String accessKeyId = "yourAccessKeyId";//你的accessKeyId,参考本文档步骤2
//			final String accessKeySecret = "yourAccessKeySecret";//你的accessKeySecret，参考本文档步骤2
			//初始化ascClient,暂时不支持多region
			IClientProfile profile = DefaultProfile.getProfile("cn-hangzhou", ConstDefine.getAliAccessKeyId(),ConstDefine.getAliAccessKeySecret());
			DefaultProfile.addEndpoint("cn-hangzhou", "cn-hangzhou", product, domain);
			IAcsClient acsClient = new DefaultAcsClient(profile);
			 //组装请求对象
			 SendSmsRequest request = new SendSmsRequest();
			 //必填:待发送手机号。支持以逗号分隔的形式进行批量调用，批量上限为1000个手机号码,批量调用相对于单条调用及时性稍有延迟,验证码类型的短信推荐使用单条调用的方式
			 request.setPhoneNumbers(phone);
			 //必填:短信签名-可在短信控制台中找到
			 request.setSignName("变色鸟全车件");
			 //必填:短信模板-可在短信控制台中找到
			 request.setTemplateCode(templateCode);
			 //可选:模板中的变量替换JSON串,如模板内容为"亲爱的${name},您的验证码为${code}"时,此处的值为
			 request.setTemplateParam("{\"code\":"+contend+"}");
			 //可选-上行短信扩展码(无特殊需求用户请忽略此字段)
			 //request.setSmsUpExtendCode("90997");
			 //可选:outId为提供给业务方扩展字段,最终在短信回执消息中将此值带回给调用者
//			 request.setOutId("yourOutId");
			//请求失败这里会抛ClientException异常
			System.out.println("发送短信请求成功code:"+contend+"      phone:"+phone);
			SendSmsResponse sendSmsResponse = acsClient.getAcsResponse(request);
			if(sendSmsResponse.getCode() != null && sendSmsResponse.getCode().equals("OK")) {
				System.out.println("发送短信请求成功code:"+contend+"      phone:"+phone);
				res="00";
//			//请求成功
			}else
			{
//				System.out.println("发送短信请求失败code:"+contend+"      phone:"+phone+   "   errCode:"+sendSmsResponse.getCode());
//				res="1";
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
		try {
			json.put("code", res);
		} catch (JSONException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return json;
	}

}
